/**
 * 建造者模式:将一个复杂对象的构建和的它的表示分离，使得同样的构建过程可以创建不同的表示
 * 使用建造者模式时，用户只需要指定建造者的类型就可以得到他们，而具体的建造的细节和过程不需要知道
 *
 * 角色：
 * （1）Builder:为创建一个Product对象的各个部件指定抽象接口
 *      @see CreationModel.BuilderPattern.PersonBuilder
 * （2）ConcreteBuilder:具体建造者，实现Builder接口，构造和装配合格组件
 *      @see CreationModel.BuilderPattern.ManBuilder
 * （3）Director:构建一个使用Builder接口的对象，指导构建过程
 *      @see CreationModel.BuilderPattern.PersonDirector
 * （4）Product:被构造的复杂对象，ConcreteBuilder创建该产品的内部表示并定义它的装配过程，
 *              包含定义组成部件的类，包括这些部件装配成最终产品的接口
 *     @see CreationModel.BuilderPattern.Person
 *
 *
 * @author 王蕾 [wanglei_dev@cyou-inc.com]
 * @date 2017-12-04 16:46:00
 */
package CreationModel.BuilderPattern;